package com.riversoft.weixin.service.api;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.ws.Action;
import javax.xml.ws.FaultAction;
import javax.xml.ws.RequestWrapper;
import javax.xml.ws.ResponseWrapper;

/**
 * 此服务为微信主动调用服务,用于微信配置，主动消息发送，客服管理，菜单管理，素材管理
 *
 * This class was generated by Apache CXF 3.2.5
 * 2018-08-29T10:18:17.012+08:00
 * Generated source version: 3.2.5
 *
 */
@WebService(targetNamespace = "http://api.service.weixin.riversoft.com/", name = "WeixinService")
@XmlSeeAlso({com.riversoft.weixin.mp.template.ObjectFactory.class, com.riversoft.weixin.mp.media.bean.ObjectFactory.class, com.riversoft.weixin.service.api.beans.ObjectFactory.class, com.riversoft.weixin.service.api.beans.commons.ObjectFactory.class, ObjectFactory.class, com.riversoft.weixin.common.message.ObjectFactory.class})
public interface WeixinService {

    @WebMethod
    @RequestWrapper(localName = "setIndustries", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.SetIndustries")
    @ResponseWrapper(localName = "setIndustriesResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.SetIndustriesResponse")
    public void setIndustries(
        @WebParam(name = "primary", targetNamespace = "")
        java.lang.String primary,
        @WebParam(name = "secondary", targetNamespace = "")
        java.lang.String secondary
    );

    @WebMethod(action = "replyCaseMusicMsg")
    @RequestWrapper(localName = "replyCaseMusicMsg", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ReplyCaseMusicMsg")
    @ResponseWrapper(localName = "replyCaseMusicMsgResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ReplyCaseMusicMsgResponse")
    public void replyCaseMusicMsg(
        @WebParam(name = "openId", targetNamespace = "")
        java.lang.String openId,
        @WebParam(name = "from", targetNamespace = "")
        java.lang.String from,
        @WebParam(name = "music", targetNamespace = "")
        com.riversoft.weixin.mp.media.bean.Music music
    );

    @WebMethod(action = "replyCaseVedioMsg")
    @RequestWrapper(localName = "replyCaseVedioMsg", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ReplyCaseVedioMsg")
    @ResponseWrapper(localName = "replyCaseVedioMsgResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ReplyCaseVedioMsgResponse")
    public void replyCaseVedioMsg(
        @WebParam(name = "openId", targetNamespace = "")
        java.lang.String openId,
        @WebParam(name = "from", targetNamespace = "")
        java.lang.String from,
        @WebParam(name = "video", targetNamespace = "")
        com.riversoft.weixin.mp.media.bean.Video video
    );

    /**
     * 更新客服账号
     */
    @WebMethod(action = "updateAccount")
    @RequestWrapper(localName = "updateAccount", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.UpdateAccount")
    @ResponseWrapper(localName = "updateAccountResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.UpdateAccountResponse")
    public void updateAccount(
        @WebParam(name = "arg0", targetNamespace = "")
        java.lang.String arg0,
        @WebParam(name = "arg1", targetNamespace = "")
        java.lang.String arg1,
        @WebParam(name = "arg2", targetNamespace = "")
        java.lang.String arg2
    );

    @WebMethod
    @RequestWrapper(localName = "getVideo", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.GetVideo")
    @ResponseWrapper(localName = "getVideoResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.GetVideoResponse")
    @WebResult(name = "return", targetNamespace = "")
    public com.riversoft.weixin.service.api.Video getVideo(
        @WebParam(name = "mediaId", targetNamespace = "")
        java.lang.String mediaId
    );

    @WebMethod
    @RequestWrapper(localName = "listMaterial", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ListMaterial")
    @ResponseWrapper(localName = "listMaterialResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ListMaterialResponse")
    @WebResult(name = "return", targetNamespace = "")
    public com.riversoft.weixin.mp.media.bean.MaterialPagination listMaterial(
        @WebParam(name = "mediaType", targetNamespace = "")
        com.riversoft.weixin.service.api.MediaType mediaType,
        @WebParam(name = "offset", targetNamespace = "")
        int offset,
        @WebParam(name = "count", targetNamespace = "")
        int count
    );

    @WebMethod(action = "unblack")
    @RequestWrapper(localName = "unblack", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.Unblack")
    @ResponseWrapper(localName = "unblackResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.UnblackResponse")
    public void unblack(
        @WebParam(name = "openIds", targetNamespace = "")
        java.util.List<java.lang.String> openIds
    );

    @WebMethod
    @RequestWrapper(localName = "deleteMenu", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.DeleteMenu")
    @ResponseWrapper(localName = "deleteMenuResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.DeleteMenuResponse")
    public void deleteMenu(
        @WebParam(name = "menuId", targetNamespace = "")
        java.lang.String menuId
    );

    /**
     * 删除客服账号
     */
    @WebMethod(action = "updateAccount")
    @RequestWrapper(localName = "deleteAccount", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.DeleteAccount")
    @ResponseWrapper(localName = "deleteAccountResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.DeleteAccountResponse")
    public void deleteAccount(
        @WebParam(name = "arg0", targetNamespace = "")
        java.lang.String arg0
    );

    @WebMethod(action = "previewMsg")
    @RequestWrapper(localName = "previewMsg", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.PreviewMsg")
    @ResponseWrapper(localName = "previewMsgResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.PreviewMsgResponse")
    @WebResult(name = "return", targetNamespace = "")
    public long previewMsg(
        @WebParam(name = "wxName", targetNamespace = "")
        java.lang.String wxName,
        @WebParam(name = "openId", targetNamespace = "")
        java.lang.String openId,
        @WebParam(name = "text", targetNamespace = "")
        java.lang.String text,
        @WebParam(name = "msgType", targetNamespace = "")
        java.lang.String msgType,
        @WebParam(name = "title", targetNamespace = "")
        java.lang.String title,
        @WebParam(name = "desc", targetNamespace = "")
        java.lang.String desc
    );

    @WebMethod
    @RequestWrapper(localName = "deleteTemplate", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.DeleteTemplate")
    @ResponseWrapper(localName = "deleteTemplateResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.DeleteTemplateResponse")
    public void deleteTemplate(
        @WebParam(name = "templateId", targetNamespace = "")
        java.lang.String templateId
    );

    @WebMethod
    @RequestWrapper(localName = "listSessionLogs", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ListSessionLogs")
    @ResponseWrapper(localName = "listSessionLogsResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ListSessionLogsResponse")
    @WebResult(name = "return", targetNamespace = "")
    public java.util.List<com.riversoft.weixin.mp.media.bean.SessionLog> listSessionLogs(
        @WebParam(name = "arg0", targetNamespace = "")
        javax.xml.datatype.XMLGregorianCalendar arg0,
        @WebParam(name = "arg1", targetNamespace = "")
        javax.xml.datatype.XMLGregorianCalendar arg1,
        @WebParam(name = "arg2", targetNamespace = "")
        int arg2,
        @WebParam(name = "arg3", targetNamespace = "")
        int arg3
    );

    @WebMethod(action = "uploadMedia")
    @Action(input = "http://beans.api.service.weixin.riversoft.com/UploadMediaRequest", output = "http://beans.api.service.weixin.riversoft.com/UploadMediaResponse", fault = {@FaultAction(className = BusinessException.class, value = "http://beans.api.service.weixin.riversoft.com/fault/BusinessException"), @FaultAction(className = TechnicalException.class, value = "http://beans.api.service.weixin.riversoft.com/fault/TechnicalException")})
    @RequestWrapper(localName = "uploadMedia", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.UploadMedia")
    @ResponseWrapper(localName = "uploadMediaResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.UploadMediaResponse")
    @WebResult(name = "return", targetNamespace = "")
    public com.riversoft.weixin.service.api.Media uploadMedia(
        @WebParam(name = "type", targetNamespace = "")
        com.riversoft.weixin.service.api.MediaType type,
        @WebParam(name = "fileName", targetNamespace = "")
        java.lang.String fileName,
        @WebParam(name = "attach", targetNamespace = "")
        javax.activation.DataHandler attach
    ) throws BusinessException, TechnicalException;

    @WebMethod
    @RequestWrapper(localName = "addMpNews", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.AddMpNews")
    @ResponseWrapper(localName = "addMpNewsResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.AddMpNewsResponse")
    @WebResult(name = "return", targetNamespace = "")
    public java.lang.String addMpNews(
        @WebParam(name = "mpNews", targetNamespace = "")
        com.riversoft.weixin.service.api.MpNews mpNews
    );

    @WebMethod
    @RequestWrapper(localName = "count", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.Count")
    @ResponseWrapper(localName = "countResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.CountResponse")
    @WebResult(name = "return", targetNamespace = "")
    public com.riversoft.weixin.mp.media.bean.Counts count();

    @WebMethod(action = "addMaterial")
    @Action(input = "http://beans.api.service.weixin.riversoft.com/AddMaterialRequest", output = "http://beans.api.service.weixin.riversoft.com/AddMaterialResponse", fault = {@FaultAction(className = BusinessException.class, value = "http://beans.api.service.weixin.riversoft.com/fault/BusinessException"), @FaultAction(className = TechnicalException.class, value = "http://beans.api.service.weixin.riversoft.com/fault/TechnicalException")})
    @RequestWrapper(localName = "addMaterial", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.AddMaterial")
    @ResponseWrapper(localName = "addMaterialResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.AddMaterialResponse")
    @WebResult(name = "addMaterialResponse", targetNamespace = "")
    public com.riversoft.weixin.mp.media.bean.Material addMaterial(
        @WebParam(name = "attach", targetNamespace = "")
        javax.activation.DataHandler attach,
        @WebParam(name = "fileName", targetNamespace = "")
        java.lang.String fileName,
        @WebParam(name = "msgType", targetNamespace = "")
        java.lang.String msgType,
        @WebParam(name = "title", targetNamespace = "")
        java.lang.String title,
        @WebParam(name = "description", targetNamespace = "")
        java.lang.String description
    ) throws BusinessException, TechnicalException;

    @WebMethod(action = "createGroup")
    @RequestWrapper(localName = "createGroup", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.CreateGroup")
    @ResponseWrapper(localName = "createGroupResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.CreateGroupResponse")
    @WebResult(name = "return", targetNamespace = "")
    public com.riversoft.weixin.service.api.Group createGroup(
        @WebParam(name = "name", targetNamespace = "")
        java.lang.String name
    );

    @WebMethod(action = "listUser")
    @RequestWrapper(localName = "listUser", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ListUser")
    @ResponseWrapper(localName = "listUserResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ListUserResponse")
    @WebResult(name = "return", targetNamespace = "")
    public com.riversoft.weixin.service.api.UserPagination listUser(
        @WebParam(name = "nextOpenId", targetNamespace = "")
        java.lang.String nextOpenId
    );

    @WebMethod
    @RequestWrapper(localName = "getIndustries", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.GetIndustries")
    @ResponseWrapper(localName = "getIndustriesResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.GetIndustriesResponse")
    @WebResult(name = "return", targetNamespace = "")
    public com.riversoft.weixin.mp.template.Industry getIndustries();

    @WebMethod(action = "rtrvUser")
    @RequestWrapper(localName = "rtrvUser", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.RtrvUser")
    @ResponseWrapper(localName = "rtrvUserResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.RtrvUserResponse")
    @WebResult(name = "return", targetNamespace = "")
    public com.riversoft.weixin.service.api.User rtrvUser(
        @WebParam(name = "id", targetNamespace = "")
        java.lang.String id,
        @WebParam(name = "lang", targetNamespace = "")
        java.lang.String lang
    );

    @WebMethod(action = "listGroup")
    @RequestWrapper(localName = "listGroup", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ListGroup")
    @ResponseWrapper(localName = "listGroupResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ListGroupResponse")
    @WebResult(name = "return", targetNamespace = "")
    public java.util.List<com.riversoft.weixin.service.api.Group> listGroup();

    @WebMethod(action = "http://beans.api.service.weixin.riversoft.com/AddMpNewsImageRequest")
    @Action(input = "http://beans.api.service.weixin.riversoft.com/AddMpNewsImageRequest", output = "http://beans.api.service.weixin.riversoft.com/AddMpNewsImageResponse", fault = {@FaultAction(className = BusinessException.class, value = "http://beans.api.service.weixin.riversoft.com/fault/BusinessException"), @FaultAction(className = TechnicalException.class, value = "http://beans.api.service.weixin.riversoft.com/fault/TechnicalException")})
    @RequestWrapper(localName = "addMpNewsImage", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.AddMpNewsImage")
    @ResponseWrapper(localName = "addMpNewsImageResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.AddMpNewsImageResponse")
    @WebResult(name = "return", targetNamespace = "")
    public java.lang.String addMpNewsImage(
        @WebParam(name = "attach", targetNamespace = "")
        javax.activation.DataHandler attach,
        @WebParam(name = "fileName", targetNamespace = "")
        java.lang.String fileName
    ) throws BusinessException, TechnicalException;

    @WebMethod
    @RequestWrapper(localName = "rtrvRuleMenus", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.RtrvRuleMenus")
    @ResponseWrapper(localName = "rtrvRuleMenusResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.RtrvRuleMenusResponse")
    @WebResult(name = "return", targetNamespace = "")
    public java.util.List<com.riversoft.weixin.service.api.RuleMenu> rtrvRuleMenus();

    @WebMethod
    @RequestWrapper(localName = "rtrvAll", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.RtrvAll")
    @ResponseWrapper(localName = "rtrvAllResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.RtrvAllResponse")
    @WebResult(name = "return", targetNamespace = "")
    public java.util.List<com.riversoft.weixin.service.api.Menu> rtrvAll();

    @WebMethod
    @RequestWrapper(localName = "createSession", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.CreateSession")
    @ResponseWrapper(localName = "createSessionResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.CreateSessionResponse")
    public void createSession(
        @WebParam(name = "arg0", targetNamespace = "")
        java.lang.String arg0,
        @WebParam(name = "arg1", targetNamespace = "")
        java.lang.String arg1,
        @WebParam(name = "arg2", targetNamespace = "")
        java.lang.String arg2
    );

    @WebMethod(action = "remark")
    @RequestWrapper(localName = "remark", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.Remark")
    @ResponseWrapper(localName = "remarkResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.RemarkResponse")
    public void remark(
        @WebParam(name = "openId", targetNamespace = "")
        java.lang.String openId,
        @WebParam(name = "remark", targetNamespace = "")
        java.lang.String remark
    );

    @WebMethod(action = "updateGroup")
    @RequestWrapper(localName = "updateGroup", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.UpdateGroup")
    @ResponseWrapper(localName = "updateGroupResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.UpdateGroupResponse")
    public void updateGroup(
        @WebParam(name = "id", targetNamespace = "")
        int id,
        @WebParam(name = "name", targetNamespace = "")
        java.lang.String name
    );

    @WebMethod(action = "listTag")
    @RequestWrapper(localName = "listTag", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ListTag")
    @ResponseWrapper(localName = "listTagResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ListTagResponse")
    @WebResult(name = "return", targetNamespace = "")
    public java.util.List<com.riversoft.weixin.service.api.Tag> listTag();

    @WebMethod(action = "replyCaseNewsMsg")
    @RequestWrapper(localName = "replyCaseNewsMsg", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ReplyCaseNewsMsg")
    @ResponseWrapper(localName = "replyCaseNewsMsgResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ReplyCaseNewsMsgResponse")
    public void replyCaseNewsMsg(
        @WebParam(name = "openId", targetNamespace = "")
        java.lang.String openId,
        @WebParam(name = "from", targetNamespace = "")
        java.lang.String from,
        @WebParam(name = "articles", targetNamespace = "")
        java.util.List<com.riversoft.weixin.common.message.Article> articles
    );

    /**
     * 获取客服账号列表
     */
    @WebMethod(action = "listAccount")
    @RequestWrapper(localName = "listAccount", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ListAccount")
    @ResponseWrapper(localName = "listAccountResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ListAccountResponse")
    @WebResult(name = "return", targetNamespace = "")
    public java.util.List<com.riversoft.weixin.mp.media.bean.Account> listAccount();

    @WebMethod(action = "updateTag")
    @RequestWrapper(localName = "updateTag", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.UpdateTag")
    @ResponseWrapper(localName = "updateTagResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.UpdateTagResponse")
    public void updateTag(
        @WebParam(name = "tag", targetNamespace = "")
        com.riversoft.weixin.service.api.Tag tag
    );

    @WebMethod
    @RequestWrapper(localName = "rtrvMenu", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.RtrvMenu")
    @ResponseWrapper(localName = "rtrvMenuResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.RtrvMenuResponse")
    @WebResult(name = "return", targetNamespace = "")
    public com.riversoft.weixin.service.api.Menu rtrvMenu();

    @WebMethod(action = "rtrvUserTags")
    @RequestWrapper(localName = "rtrvUserTags", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.RtrvUserTags")
    @ResponseWrapper(localName = "rtrvUserTagsResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.RtrvUserTagsResponse")
    @WebResult(name = "return", targetNamespace = "")
    public java.util.List<java.lang.Integer> rtrvUserTags(
        @WebParam(name = "openId", targetNamespace = "")
        java.lang.String openId
    );

    /**
     * 添加客服账号
     */
    @WebMethod(action = "addAccount")
    @RequestWrapper(localName = "addAccount", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.AddAccount")
    @ResponseWrapper(localName = "addAccountResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.AddAccountResponse")
    public void addAccount(
        @WebParam(name = "arg0", targetNamespace = "")
        java.lang.String arg0,
        @WebParam(name = "arg1", targetNamespace = "")
        java.lang.String arg1,
        @WebParam(name = "arg2", targetNamespace = "")
        java.lang.String arg2
    );

    /**
     * 获取客服状态
     */
    @WebMethod(action = "listAccountStatus")
    @RequestWrapper(localName = "listAccountStatus", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ListAccountStatus")
    @ResponseWrapper(localName = "listAccountStatusResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ListAccountStatusResponse")
    @WebResult(name = "return", targetNamespace = "")
    public java.util.List<com.riversoft.weixin.mp.media.bean.AccountStatus> listAccountStatus();

    @WebMethod(action = "http://beans.api.service.weixin.riversoft.com/DownloadMediaRequest")
    @Action(input = "http://beans.api.service.weixin.riversoft.com/DownloadMediaRequest", output = "http://beans.api.service.weixin.riversoft.com/DownloadMediaResponse", fault = {@FaultAction(className = BusinessException.class, value = "http://beans.api.service.weixin.riversoft.com/fault/BusinessException"), @FaultAction(className = TechnicalException.class, value = "http://beans.api.service.weixin.riversoft.com/fault/TechnicalException")})
    @RequestWrapper(localName = "downloadMedia", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.DownloadMedia")
    @ResponseWrapper(localName = "downloadMediaResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.DownloadMediaResponse")
    @WebResult(name = "return", targetNamespace = "")
    public javax.activation.DataHandler downloadMedia(
        @WebParam(name = "mediaId", targetNamespace = "")
        java.lang.String mediaId
    ) throws BusinessException, TechnicalException;

    @WebMethod
    @RequestWrapper(localName = "closeSession", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.CloseSession")
    @ResponseWrapper(localName = "closeSessionResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.CloseSessionResponse")
    public void closeSession(
        @WebParam(name = "arg0", targetNamespace = "")
        java.lang.String arg0,
        @WebParam(name = "arg1", targetNamespace = "")
        java.lang.String arg1,
        @WebParam(name = "arg2", targetNamespace = "")
        java.lang.String arg2
    );

    @WebMethod(action = "deleteGroup")
    @RequestWrapper(localName = "deleteGroup", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.DeleteGroup")
    @ResponseWrapper(localName = "deleteGroupResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.DeleteGroupResponse")
    public void deleteGroup(
        @WebParam(name = "id", targetNamespace = "")
        int id
    );

    @WebMethod(action = "createTag")
    @RequestWrapper(localName = "createTag", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.CreateTag")
    @ResponseWrapper(localName = "createTagResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.CreateTagResponse")
    @WebResult(name = "return", targetNamespace = "")
    public com.riversoft.weixin.service.api.Tag createTag(
        @WebParam(name = "name", targetNamespace = "")
        java.lang.String name
    );

    @WebMethod(action = "replyMsg")
    @RequestWrapper(localName = "replyMsg", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ReplyMsg")
    @ResponseWrapper(localName = "replyMsgResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ReplyMsgResponse")
    @WebResult(name = "return", targetNamespace = "")
    public long replyMsg(
        @WebParam(name = "group", targetNamespace = "")
        java.lang.Integer group,
        @WebParam(name = "openIds", targetNamespace = "")
        java.util.List<java.lang.String> openIds,
        @WebParam(name = "text", targetNamespace = "")
        java.lang.String text,
        @WebParam(name = "msgType", targetNamespace = "")
        java.lang.String msgType,
        @WebParam(name = "title", targetNamespace = "")
        java.lang.String title,
        @WebParam(name = "desc", targetNamespace = "")
        java.lang.String desc
    );

    @WebMethod
    @RequestWrapper(localName = "updateMpNews", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.UpdateMpNews")
    @ResponseWrapper(localName = "updateMpNewsResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.UpdateMpNewsResponse")
    public void updateMpNews(
        @WebParam(name = "mediaId", targetNamespace = "")
        java.lang.String mediaId,
        @WebParam(name = "index", targetNamespace = "")
        int index,
        @WebParam(name = "article", targetNamespace = "")
        com.riversoft.weixin.service.api.MpArticle article
    );

    /**
     * <div>发送模板消息</div><p>url和miniprogram都是非必填字段，若都不传则模板无跳转；若都传，会优先跳转至小程序。 开发者可根据实际需要选择其中一种跳转方式即可。当用户的微信客户端版本不支持跳小程序时，将会跳转至url</p>
     */
    @WebMethod(action = "replyTmplMsg")
    @RequestWrapper(localName = "replyTmplMsg", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ReplyTmplMsg")
    @ResponseWrapper(localName = "replyTmplMsgResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ReplyTmplMsgResponse")
    @WebResult(name = "return", targetNamespace = "")
    public long replyTmplMsg(
        @WebParam(name = "toUser", targetNamespace = "")
        java.lang.String toUser,
        @WebParam(name = "templateId", targetNamespace = "")
        java.lang.String templateId,
        @WebParam(name = "url", targetNamespace = "")
        java.lang.String url,
        @WebParam(name = "miniProgram", targetNamespace = "")
        com.riversoft.weixin.mp.template.MiniProgram miniProgram,
        @WebParam(name = "datas", targetNamespace = "")
        com.riversoft.weixin.service.api.ReplyTmplMsg.Datas datas
    );

    @WebMethod(action = "listBlackUser")
    @RequestWrapper(localName = "listBlackUser", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ListBlackUser")
    @ResponseWrapper(localName = "listBlackUserResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ListBlackUserResponse")
    @WebResult(name = "return", targetNamespace = "")
    public com.riversoft.weixin.service.api.UserPagination listBlackUser(
        @WebParam(name = "nextOpenId", targetNamespace = "")
        java.lang.String nextOpenId
    );

    @WebMethod
    @RequestWrapper(localName = "listMpNews", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ListMpNews")
    @ResponseWrapper(localName = "listMpNewsResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ListMpNewsResponse")
    @WebResult(name = "return", targetNamespace = "")
    public com.riversoft.weixin.mp.media.bean.MpNewsPagination listMpNews(
        @WebParam(name = "offset", targetNamespace = "")
        int offset,
        @WebParam(name = "count", targetNamespace = "")
        int count
    );

    @WebMethod
    @RequestWrapper(localName = "createRuleMenu", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.CreateRuleMenu")
    @ResponseWrapper(localName = "createRuleMenuResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.CreateRuleMenuResponse")
    public void createRuleMenu(
        @WebParam(name = "menu", targetNamespace = "")
        com.riversoft.weixin.service.api.RuleMenu menu
    );

    @WebMethod
    @RequestWrapper(localName = "listTemplate", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ListTemplate")
    @ResponseWrapper(localName = "listTemplateResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ListTemplateResponse")
    @WebResult(name = "return", targetNamespace = "")
    public java.util.List<com.riversoft.weixin.mp.template.Template> listTemplate();

    @WebMethod
    @RequestWrapper(localName = "getMpNews", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.GetMpNews")
    @ResponseWrapper(localName = "getMpNewsResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.GetMpNewsResponse")
    @WebResult(name = "return", targetNamespace = "")
    public com.riversoft.weixin.service.api.MpNews getMpNews(
        @WebParam(name = "mediaId", targetNamespace = "")
        java.lang.String mediaId
    );

    @WebMethod
    @RequestWrapper(localName = "getSessionsByAccount", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.GetSessionsByAccount")
    @ResponseWrapper(localName = "getSessionsByAccountResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.GetSessionsByAccountResponse")
    @WebResult(name = "return", targetNamespace = "")
    public java.util.List<com.riversoft.weixin.mp.media.bean.Session> getSessionsByAccount(
        @WebParam(name = "arg0", targetNamespace = "")
        java.lang.String arg0
    );

    @WebMethod(action = "rtrvUserGroup")
    @RequestWrapper(localName = "rtrvUserGroup", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.RtrvUserGroup")
    @ResponseWrapper(localName = "rtrvUserGroupResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.RtrvUserGroupResponse")
    @WebResult(name = "return", targetNamespace = "")
    public int rtrvUserGroup(
        @WebParam(name = "openId", targetNamespace = "")
        java.lang.String openId
    );

    @WebMethod(action = "black")
    @RequestWrapper(localName = "black", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.Black")
    @ResponseWrapper(localName = "blackResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.BlackResponse")
    public void black(
        @WebParam(name = "openIds", targetNamespace = "")
        java.util.List<java.lang.String> openIds
    );

    @WebMethod(action = "replyCaseMsg")
    @RequestWrapper(localName = "replyCaseMsg", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ReplyCaseMsg")
    @ResponseWrapper(localName = "replyCaseMsgResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ReplyCaseMsgResponse")
    public void replyCaseMsg(
        @WebParam(name = "openId", targetNamespace = "")
        java.lang.String openId,
        @WebParam(name = "from", targetNamespace = "")
        java.lang.String from,
        @WebParam(name = "msgType", targetNamespace = "")
        java.lang.String msgType,
        @WebParam(name = "content", targetNamespace = "")
        java.lang.String content
    );

    @WebMethod
    @RequestWrapper(localName = "deleteMedia", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.DeleteMedia")
    @ResponseWrapper(localName = "deleteMediaResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.DeleteMediaResponse")
    public void deleteMedia(
        @WebParam(name = "mediaId", targetNamespace = "")
        java.lang.String mediaId
    );

    @WebMethod(action = "rtrvMaterial")
    @RequestWrapper(localName = "rtrvMaterial", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.RtrvMaterial")
    @ResponseWrapper(localName = "rtrvMaterialResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.RtrvMaterialResponse")
    @WebResult(name = "rtrvMaterialResponse", targetNamespace = "")
    public javax.activation.DataHandler rtrvMaterial(
        @WebParam(name = "mediaId", targetNamespace = "")
        java.lang.String mediaId,
        @WebParam(name = "type", targetNamespace = "")
        java.lang.String type
    );

    @WebMethod(action = "rtrvUsers")
    @RequestWrapper(localName = "rtrvUsers", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.RtrvUsers")
    @ResponseWrapper(localName = "rtrvUsersResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.RtrvUsersResponse")
    @WebResult(name = "return", targetNamespace = "")
    public java.util.List<com.riversoft.weixin.service.api.User> rtrvUsers(
        @WebParam(name = "openIds", targetNamespace = "")
        java.util.List<java.lang.String> openIds
    );

    @WebMethod(action = "tagUsers")
    @RequestWrapper(localName = "tagUsers", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.TagUsers")
    @ResponseWrapper(localName = "tagUsersResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.TagUsersResponse")
    public void tagUsers(
        @WebParam(name = "tagId", targetNamespace = "")
        int tagId,
        @WebParam(name = "openIds", targetNamespace = "")
        java.util.List<java.lang.String> openIds
    );

    @WebMethod
    @RequestWrapper(localName = "createMenu", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.CreateMenu")
    @ResponseWrapper(localName = "createMenuResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.CreateMenuResponse")
    public void createMenu(
        @WebParam(name = "menu", targetNamespace = "")
        com.riversoft.weixin.service.api.Menu menu
    );

    @WebMethod
    @RequestWrapper(localName = "fetchTemplate", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.FetchTemplate")
    @ResponseWrapper(localName = "fetchTemplateResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.FetchTemplateResponse")
    @WebResult(name = "return", targetNamespace = "")
    public java.lang.String fetchTemplate(
        @WebParam(name = "code", targetNamespace = "")
        java.lang.String code
    );

    @WebMethod
    @RequestWrapper(localName = "getSession", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.GetSession")
    @ResponseWrapper(localName = "getSessionResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.GetSessionResponse")
    @WebResult(name = "return", targetNamespace = "")
    public com.riversoft.weixin.mp.media.bean.Session getSession(
        @WebParam(name = "arg0", targetNamespace = "")
        java.lang.String arg0
    );

    @WebMethod(action = "unTagUsers")
    @RequestWrapper(localName = "unTagUsers", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.UnTagUsers")
    @ResponseWrapper(localName = "unTagUsersResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.UnTagUsersResponse")
    public void unTagUsers(
        @WebParam(name = "tagId", targetNamespace = "")
        int tagId,
        @WebParam(name = "openIds", targetNamespace = "")
        java.util.List<java.lang.String> openIds
    );

    /**
     * 删除客服头像
     */
    @WebMethod(action = "uploadHeadImage")
    @Action(input = "http://beans.api.service.weixin.riversoft.com/UploadHeadImageRequest", output = "http://beans.api.service.weixin.riversoft.com/UploadHeadImageResponse", fault = {@FaultAction(className = BusinessException.class, value = "http://beans.api.service.weixin.riversoft.com/fault/BusinessException"), @FaultAction(className = TechnicalException.class, value = "http://beans.api.service.weixin.riversoft.com/fault/TechnicalException")})
    @RequestWrapper(localName = "uploadHeadImage", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.UploadHeadImage")
    @ResponseWrapper(localName = "uploadHeadImageResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.UploadHeadImageResponse")
    public void uploadHeadImage(
        @WebParam(name = "arg0", targetNamespace = "")
        java.lang.String arg0,
        @WebParam(name = "arg1", targetNamespace = "")
        byte[] arg1,
        @WebParam(name = "arg2", targetNamespace = "")
        java.lang.String arg2
    ) throws BusinessException, TechnicalException;

    @WebMethod(action = "listUsers")
    @RequestWrapper(localName = "listUsers", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ListUsers")
    @ResponseWrapper(localName = "listUsersResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.ListUsersResponse")
    @WebResult(name = "return", targetNamespace = "")
    public com.riversoft.weixin.service.api.UserPagination listUsers(
        @WebParam(name = "tagId", targetNamespace = "")
        int tagId,
        @WebParam(name = "nextOpenId", targetNamespace = "")
        java.lang.String nextOpenId
    );

    @WebMethod(action = "moveGroup")
    @RequestWrapper(localName = "moveGroup", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.MoveGroup")
    @ResponseWrapper(localName = "moveGroupResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.MoveGroupResponse")
    public void moveGroup(
        @WebParam(name = "openIds", targetNamespace = "")
        java.util.List<java.lang.String> openIds,
        @WebParam(name = "groupId", targetNamespace = "")
        int groupId
    );

    @WebMethod
    @RequestWrapper(localName = "getWaitingSessions", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.GetWaitingSessions")
    @ResponseWrapper(localName = "getWaitingSessionsResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.GetWaitingSessionsResponse")
    @WebResult(name = "return", targetNamespace = "")
    public com.riversoft.weixin.mp.media.bean.WaitingSessions getWaitingSessions();

    @WebMethod(action = "deleteTag")
    @RequestWrapper(localName = "deleteTag", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.DeleteTag")
    @ResponseWrapper(localName = "deleteTagResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.DeleteTagResponse")
    public void deleteTag(
        @WebParam(name = "id", targetNamespace = "")
        int id
    );

    @WebMethod
    @RequestWrapper(localName = "rtrvMenuByOpenId", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.RtrvMenuByOpenId")
    @ResponseWrapper(localName = "rtrvMenuByOpenIdResponse", targetNamespace = "http://api.service.weixin.riversoft.com/", className = "com.riversoft.weixin.service.api.RtrvMenuByOpenIdResponse")
    @WebResult(name = "return", targetNamespace = "")
    public com.riversoft.weixin.service.api.Menu rtrvMenuByOpenId(
        @WebParam(name = "openId", targetNamespace = "")
        java.lang.String openId
    );
}
